//File: util.ice
//Author: Jingyuan Ding 
//Last updated time: 2015-11-09
//Utility identifiers of Xts

#pragma once

module Xts
{
	module Util
	{
		//If you want to handle time, in C++, user should use ::IceUtil::Time class, in C#, user should use System.DateTime and System.TimeSpan
		//XTime in Tom are just used to transfer time infomation.
		//A XTime object stores ticks in microssecond,  when it means a DateTime, it's the ticks from utc 1970-01-01T00:00:00;
		//When it means a time span, it's the ticks between to time points.
		//In each edition for differrent languages, we provide a XTimeAdapter class matching the language's DataTime type.
		["clr:class", "cs:attribute:System.Serializable"] 
		struct XTime
		{
			long 	UtcTicks; //UTC Ticks in microseconds;
		};
		
		enum XTimeZone{UTC000, UTCE01, UTCE02, UTCE03, UTCE04, UTCE05, UTCE06, UTCE07, UTCE08, UTCE09, UTCE10, UTCE11, UTCE12, 
		UTCW01, UTCW02, UTCW03, UTCW04, UTCW05, UTCW06, UTCW07, UTCW08, UTCW09, UTCW10, UTCW11, UTCW12};
		
		//Type of Nationality or Region
		enum XNationalityType				      
		{
			UndefinedNation,			         //Undefined Nationality or Region 未知国家和地区
			CN,							         //China				中国
			CA,   						         //Canada				加拿大
			BR,     				             //Brazil				巴西
			TW,   					             //Taiwan				台湾
			DE,  					             //Germany				德国
			FR,   					             //France				法国
			GB,     				             //Britain				应该
			IT,    						         //Italy				意大利
			HK,    						         //Hong Kong			香港
			MO,     					         //Macao				澳门
			JP,     					         //Japan				日本
			KR,     					         //South Korea, Republic of Korea	韩国
			KP,     					         //North Korea, Democratic People's Republic of Korea	朝鲜
			TH,    						         //Thailand				泰国
			US,   						         //United States of America	美国
			RU,     					         //Russia				俄罗斯
			CH     						         //Switzerland			瑞士
		};		
		
		//Type of Currency	
		enum XCurrencyType						
		{
		   UndefinedCurrency, 						//未知币种
		   USD, 									//美元
		   GBP, 									//英镑
		   EUR, 									//欧元
		   AUD, 									//澳大利亚元
		   CAD, 									//加元
		   NZD, 									//新西兰元
		   JPY, 									//日元
		   CHF, 									//瑞士法郎
		   BRL, 									//巴西雷亚尔
		   HKD, 									//港币
		   SEK, 									//瑞典克朗
		   NOK, 									//挪威克朗
		   KRW,										//韩国元
		   SGD, 									//新加坡元
		   CNY,										//人民币
		   MXN, 									//墨西哥比索
		   RUB, 									//俄罗斯卢布
		   INR, 									//印度卢比
		   TRY, 									//土耳其里拉
		   CYP, 									//塞浦路斯镑
		   CZK, 									//捷克克朗 
		   DKK, 									//丹麦克朗
		   EEK, 									//爱沙尼亚克朗
		   HRK, 									//克罗地亚库纳
		   HUF, 									//匈牙利福林
		   LTL, 									//立陶宛立特
		   LVL, 									//拉脱维亚拉特
		   MTL, 									//马尔他里拉
		   PLN, 									//波兰兹罗提
		   RON, 									//罗马尼亚列伊
		   SIT, 									//斯洛文尼亚托拉捷夫
		   SKK, 									//塞拉利昂利昂
		   TWD										//新台币
		};
		
		//Tag of Banks
		enum XBankTag
		{	
			UndefinedBank,       //未定义银行
			SPDB,               //上海浦东发展银行          001
			ICBC,               //中国工商银行	            002
			CMB,                //招商银行                  003
			ABC,                //中国农业银行              004
			CCB,                //中国建设银行              005
			BOCM,               //交通银行                  006
			CGB,                //广发银行                  007
			BOC,                //中国银行                  008		
			UnionPay,           //银联                      009		
			CIB,                //兴业银行                  010		
			CMBC,               //民生银行                  011
			CITIC,              //中信银行				    012
			HXB,                //华夏银行                  013
			PAB,                //平安银行（深发展银行）    014
			BOS,                //上海银行                  015
			SCRCU,              //四川农村信用社            016
			CZB,                //浙商银行                  017
			CEB,                //光大银行                  019
			JNB,                //济宁银行                  020
			QDCCB,              //青岛银行                  021
			HRBCB,              //哈尔滨银行                023
			KLB,                //昆仑银行                  027
			CCQTGB,             //重庆三峡银行              028
			CQRCB,              //重庆商业银行              029
			PSCB,               //邮政储蓄银行              030
			NBCB,               //宁波银行                  031		
			PZHCCB,             //攀枝花市商业银行          036
			BOB                 //北京银行
		};
		
		
	};
};